iMouse键盘 删除文本
从光标位置往前删掉 count 个字符,相当于连按若干次退格键。
比用 /key/sendkey 发 BACKSPACE 快:删 10 个字符只要一次请求,
而且不受按键节奏影响。
依赖手机上的 iMouse 键盘,不经过 USB 硬件
与 /key/* 那几条不同,/keyboard/* 是内核通过局域网直接把文本交给手机上的 iMouse 键盘。所以要求:
- 手机上已安装 iMouse 键盘(App Store),并在「设置 → 通用 → 键盘 → 添加新键盘」里添加、 打开「允许完全访问」
- 调用的那一刻,iMouse 键盘正处于前台激活状态——也就是光标在某个输入框里、 键盘已经弹出且当前键盘就是 iMouse 键盘
- 手机与内核所在的电脑在同一局域网
⚠️ 键盘一旦退到后台(比如按了主屏幕键),这几条会立刻返回 code=46 或 47。
这不是接口坏了,把光标点回输入框、切到 iMouse 键盘即可。
多设备与返回值
id 支持多个设备(逗号隔开);留空表示全部设备。
⚠️ 响应里只有一个 code,取的是第一台的结果——批量调用时,别拿它当"所有设备都成功了"的凭据。
⚠️ id 传了却匹配不到任何设备时返回 code=1(id不存在)。
count 数的是字符一个中文字算 1 个字符,不是按字节算。
输入框里的字不够删时,有几个删几个,不会报错。
count=0 或不传则什么都不做(仍返回 code=0)。
调用说明
- 请求参数
| 参数 | 类型 | 说明 | 备注 |
|---|---|---|---|
| fun | 字符串 | /keyboard/delete | 请求功能名 |
| id | 字符串 | 设备唯一ID | 多个设备用逗号隔开;留空表示全部设备 |
| count | 整数 | 往前删掉几个字符 | 不传按 0 处理(什么都不删) |
- httpGet请求示例
curl --request GET \
--url 'http://192.168.9.9:9911/api/keyboard/delete?id=5C:F7:E6:CE:65:22&count=3'
- httpPost json请求示例【websocket也可发送同样json请求】
curl --request POST \
--url http://192.168.9.9:9911/api \
--header 'Content-Type: application/json' \
--data '{
"fun": "/keyboard/delete",
"data": {
"id": "5C:F7:E6:CE:65:22",
"count": 3
}
}'
响应结果
{
"data": {
"code": 0,
"id": "5C:F7:E6:CE:65:22",
"message": "成功"
},
"status": 200,
"message": "成功",
"msgid": 0,
"fun": "/keyboard/delete"
}
- 响应data数据字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
| code | 整数 | 见下表 |
| id | 字符串 | 请求里传的设备 id |
| message | 字符串 | code 对应的文字说明 |
- 错误码
| code | 含义 | 该怎么处置 |
|---|---|---|
| 0 | 成功 | —— |
| 1 | id不存在 | 检查设备 id;留空表示全部设备 |
| 44 | 密钥初始化失败 | 重启内核后重试 |
| 45 | 签名/序列化失败 | 参数里有无法序列化的内容 |
| 46 | 连接超时 | 确认 iMouse 键盘在前台、手机与电脑在同一局域网(见上方说明) |
| 47 | 连接被拒绝 / 不可达 | iMouse 键盘不在前台(键盘已收起,或切到了别的键盘) |
| 48 | 其他网络错误 | 检查手机与电脑是否在同一网段 |
| 49 | 请求体为空或字段缺失 | 必填参数没传,或传了空值 |
| 50 | 签名无效 / 时间戳过期 | 电脑与手机的系统时间相差过大 |
| 51 | 路径不存在 | 手机端 iMouse 键盘版本过旧,请到 App Store 更新 |
| 52 | 服务端错误 | 手机端 iMouse 键盘内部出错,重新弹出键盘后重试 |
| 53 | 其他HTTP错误 | —— |